package com.blockchain.coupon.service;

import com.blockchain.coupon.entity.*;

import java.util.List;
import java.util.Map;

/**
 * Created by wufaxiang on 2017/1/13.
 */
public interface MerchantService {

    /**
     * 1.商户注册功能
     * params: Merchant
     * return: string  0:写入数据库失败   1：写入数据库成功
     */
    public String merchantRegister(Merchant merchant);

    /**
     * 2.商户登陆功能
     * params: merchantAccount 商户账户名  merchantPassword 商户登陆密码
     * return: int  0 密码错误  1 登录成功  -1 不存在此用户   -2 未审核成功
     */
    public String merchantLogin(String merchantAccount, String merchantPassword);

    public String merchantInfoModify(String merchantId, String merchantName, String merchantDescription);

    public String merchantPasswordModify(String merchantId, String  merchantPassword, String merchantNewPassword);

    public List<BankCard> merchantBankCardInfoDisplay(String merchantId);

    public Map<String,Object> merchantClearingTicketApplyDisplay(String merchantId, String startTime, String endTime);

    public String merchantApplyClearingTicket(String merchantId, String clearingTicketApplyAmount);

    public List<ClearingTicketOperationLog> merchantApplyRecordFiltrate(String merchantId, String startTime, String endTime);

    public String merchantIssueCouponDisplay(String merchantId);

    public String merchantIssueCoupon(String merchantId, CouponRule couponRule);

    public CouponRule merchantIssueCouponManageDisplay(String merchantId);

    public String merchantStopIssueCoupon(String couponRuleId);

    public Map<String,Object> merchantIssueStatusDisplay(String couponRuleId);

    public List<CouponOperationLog> merchantStopIssueStatusFiltrate(String merchantId, String startTimem, String endTime);



    /**
     * 3.商户信息设置（修改商户名称和商户简介）
     * params: merchantName 商户名    merchantDescription 商户简介
     * return:  0 修改失败    1： 修改成功

    public boolean merchantInfoSetting(String merchantName, String merchantDescription);
     */
    /**
     * 4. 商户登录密码修改
     * params: merchantPassword 原密码     merchantPasswordNew 新密码
     * return: -1 原密码错误     0 修改失败   1 修改成功

    public int merchantPasswordSetting(String merchantPassword, String merchantPasswordNew);
     */
    /**
     * 5. 银行账号管理（查看绑定情况）
     *  查看商户持有的银行账号
     *  params: merchantId  商户id

    public BankCard queryMerchantBankCard(String merchantId);
     */
    /**
     * 6. 结算券申请功能
     * params: clearingTicketAmount 申请的结算券数额
     * return: 提交请求是否成功

    public boolean applyClearingTicket(int clearingTicketAmount);
     */
    /**
     * 7.发行优惠券申请
     * params: couponRule 发行规则
     * return: true 发行申请请求成功  false 请求失败

    public boolean issueCouponApplication(CouponRule couponRule);
     */
    /**
     * 8. 终止优惠券发行
     * params: couponId  优惠券id
     * return: true 终止成功  false: 终止失败

    public boolean stopCouponIssuement(String couponId);
     */
    /**
     * 9.优惠券发放状态
     * params: couponId  优惠券id
     * return: CouponIssueInfo 优惠券发放详细信息集合

    public List<CouponIssueInfo> queryCouponStatusHistory(String couponId);
     */
    /**
     * 10. 资金清算
     * params: merchantId  商户id
     * return: true 清算成功  false: 清算失败

    public boolean capitalClearing(String merchantId);
     */
    /**
     * 11. 查看资金流水
     * params: merchantId  商户id
     * return: CapitalFlow 资金流水集合

    public List<CapitalFlow> queryCapitalFlow(String merchantId);
     */

}
